home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-03-06 | 4.5 KB | 86 lines | [TEXT/GEOL] |
- Item 4659915 22-June-89 11:52
-
- From: CREMER.M Cremer, Mike
-
- To: D2086 Efficient Field Svc, C Faith, PRT
-
- cc: MACAPP.TECH$ MACAPP Tech
-
- Sub: Re: Docs and Obj pascal
-
- Curtis,
-
- If I understand the problem correctly, you have a situation where you want a
- "background" document to be in the command chanin so it can determine if it
- needs to do something when an unhandled command comes along.
-
- My difficulty with this line of thinking is the Mac user interface hinges on
- the concept of user-initiated actions affecting a user-known target. How is
- the user to know that the menu command or keystroke is going to hit the third
- document back? That makes the application look more like a huge filter, with
- each document straining out only the commands it can handle. How would you
- handle Undo? Would it Undo the last command that was processed, irrespective
- of whose it was? Or would Undo reflect only the changes made to the "current"
- (i.e. frontmost) document?
-
- > Say I have one list open [and] I want to get another up. I close the list
- > window. Now since there was a letter open already that letter document
- > gains control. I cannot open the new list.
-
- I'm not clear on whether the user or the application initiated this sequence.
- Did your app decide it needed a new list window? Or did the user perform some
- action to indicate she wanted a new list window? And if the latter, why do it
- while she was working on a letter? This would fit your argument if the user
- performed some action on the letter, and as a side-effect, it disposed of an
- old list and created a new one (in a different document). In this case, it
- seems more logical for the letter to have some knowledge of the list, and
- effect the changes itself, instead of passing the command that initiated the
- change along to anyone who wanted it.
-
- > I don't think any user interface standards would be violated by having
- > the menus enabled when the letter document is at front.
-
- This way madness lies. What happens to commands that several documents could
- handle? How does the user distinguish who the action is targeted for? (see
- above). What if I choose "Revert…", which gets handled by the frontmost
- document, but I really intended the Revert for a background document? And now
- I can't Undo the Revert, and all my changes to the frontmost document have been
- blown away... :-( The problem here is that some commands affect the front
- document, and some the background, but the sets are not mutually exclusive.
- The user may not know beforehand which document will handle the command,
- especially if there happens to be an open windowless document lurking behind
- the screen, waiting to eat unsuspecting commands and giving no indication that
- it did so. This is not good.
-
- > Having to click on a window of the TDatabase object to gain access to
- > those commands is entirely too modal and messy.
-
- I like to think of an application that can handle multiple document _types_ as
- being several applications. Running MacWrite, MacPaint, and MacDraw under
- MultiFinder and running MySuperDuperWritePaintDraw would be equivalent from a
- user persepctive. The Write, Paint, and Draw elememts are distinct; no user
- would have trouble making the distinction. Perhaps in a database application
- the distinction between functions and documents is blurred. I like Larry's
- idea of a the database being controlled by the TApplication, and TDocuments
- representing forms or slices of database information. In fact, the first
- MacApp application I wrote did exactly this. It works rather well, too.
-
- re: Documents handling commands even when no window is open, I agree with Larry
- that anything the user can change should have a visible component so the user
- can monitor the effect she is having (see above).
-
- I do not want to be a NO-NO-NO-NEVER-NEVER-NEVER screamer. The concept of all
- documents being in the command chain is not evil per se. In your application,
- you can do whatever you like, and the acceptance it receives from users will be
- its ultimate measure. However, document command chains should be an option
- taken only by those who really understand what they are doing (can you imagine
- debugging such a creature?). Since the onus of responsibility for ensuring
- correct behavior rests on the programmer, those who program "normal"
- applications should not have to exert any extra effort to work around the
- document "feature."
-
- Food for thought, anyway.
-
- $mike cremer
-
-